# 首先将所有数字从小到大排序，接着这道题可以分三种情况考虑：
# （1）只有两个数的情况：直接两数相减取绝对值即可。
# （2）奇数个数的情况：首先保证第一个数字非0，如果为0，就将第一个数与第二个数交换位置，然后从左往右连续取n/2+1个数组成第一个整数，最后从右往左连续取n/2个数，即剩下的所有数组成另一个整数。这样所求得的一对整数的差的绝对值最小。
# （3）偶数个数的情况：从左往右依次枚举，首先保证第一个数非0，如果为0，就从下一个数开始枚举；取第k个数作为第一个整数的第一个数字，取第k+1个数作为第二个整数的第一个数字；然后，对于剩下的数字，从右往左连续取n/2-1个数加入第一个整数中，从左往右连续取n/2-1个数加入第二个整数中；最后，取差的绝对值最小的一对整数。
arr=[0,1,2,4,6,7]
def getMin(arr):
    #第一种情况
    if len(arr)==2:
        return abs(arr[0]-arr[1])
    arr.sort()  #从小到大排序
    #第二种情况：奇数个数
    if len(arr)%2==1:
        if arr[0]==0:
            arr[0],arr[1]=arr[1],arr[0]
        print(arr)
        num1=0
        arr1=arr[0:int(len(arr)/2)+1]
        print(arr1)
        for i in arr1:
            num1=num1*10+i
        num2=0
        arr2=arr[int(len(arr)/2)+1:]
        arr2.sort(reverse=True)
        print(arr2)
        for i in arr2:
            num2=num2*10+i
        return num1-num2
    else:

        #第三种情况
        i=0
        while i<len(arr):
            if arr[i]!=0:
                break
            else:
                i+=1
        num1=0
        num2=0
        print(arr)
        num1=arr[i]
        arr.remove(num1)
        num2=arr[i]
        arr.remove(num2)
        print(arr)
        arr1=arr[:int(len(arr)/2)]
        arr2=arr[int(len(arr)/2):]
        arr2.reverse()
        print(arr1)
        print(arr2)
        print("..............")
        print("num2:",num2)
        print(arr1)
        for j in arr1:
            print("j:",j)
            num2=num2*10+j
            print(num2)
        print("...............")
        for j in arr2:
            num1=num1*10+j
        print(num1)
        return num2-num1
print(getMin(arr))